1. Field of the Invention
The present invention relates to the field of computer systems. More specifically, the present invention relates to disk block allocation optimization methodology and applications.
2. Background Information
In the art of computer systems, many problems involve optimizing disk block allocations. For example, in the past decade, performance of microprocessor based computer systems have increased dramatically. In particular, the operating speed of microprocessors have increased from the meager 16 MHz to well over 200 MHz. This trend is expected to continue without abatement. Correspondingly, while not as dramatic, performance of system and input/output (I/O) buses have also improved substantially, ensuring the microprocessors have adequate data to work with and kept busy. However, except for the improvement provided by buffering etc., the performance of disk drive has lagged behind. As a result, users are often deprived of the full benefit of the increased performance by the microprocessors. For example, when starting up an application or booting up an operating system, because the large majority of time is often spent on loading the application or operating system routines into memory from a disk drive, a user often does not see an appreciable difference in performance between a system equipped with a 100 MHz microprocessor or a 200 MHz microprocessor. Thus, further improvement in disk drive performance is desirable, and as will be disclosed in more detail below, the present invention provides the desired improvement in disk drive performance as well as other desirable results, which will be readily apparent to those skilled in the art, upon reading the detailed description to follow.
An apparatus is equipped with a disk block allocation optimization function for generating, if possible, an alternative disk block allocation for a current disk block allocation that will yield improved overall access time for a sequence of logical file accesses. The function includes logic for tracing the sequence of logical file accesses, and then mapping the sequence of logical file accesses to physical disk blocks to determine the current disk block allocation, logic for generating the alternative disk block allocation, if possible, using the physical disk block trace results, and logic for effectuating the alternate disk block allocation, if generated.
In one particular embodiment, the logic for generating the alternative disk block allocation employs a random search approach, while in another embodiment, the logic for generating the alternative disk block allocation employs a heuristic approach.
In one embodiment, the disk block allocation optimization function is a standalone utility. In another embodiment, the disk block allocation optimization function is an integral part of an application. In yet another embodiment, the logical file access tracing logic of the disk block allocation optimization function is an integral part of an operating system, whereas the remainder of the disk block allocation optimization function is a standalone complementary function to the logical file access tracing logic.
In one embodiment, the apparatus is a computer system.